package com.sunqizhong.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class JwtUtils {
    private static String signKey = "SVRIRUINQQ==";
    private static Long expire = 43200000L;

    /*
    * 生成jwt令牌
    * */
    public static String generateJwt(Map<String,Object> claims){
        String jwt = Jwts.builder()
                .signWith(SignatureAlgorithm.HS256,signKey)
                .addClaims(claims)
                .setExpiration(new Date(System.currentTimeMillis() + expire)) //设置过期时间，什么时候令牌失效,这里设置两小时后失效
                .compact();
        return jwt;
    }

    /*
    * jwt令牌校验
    * 校验失败有两种情况
    *   1、令牌被篡改
    *   2、令牌过期了
    * */
    public static Claims parseJwt(String jwt){
        Claims claims = Jwts.parser().setSigningKey(signKey)
                .parseClaimsJws(jwt)
                .getBody();
        return claims;
    }
}
